tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
↳ QTRS
↳ Overlay + Local Confluence
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))
DOUBLE(s(x)) → DOUBLE(x)
EXP(s(x)) → DOUBLE(exp(x))
HALF(0) → DOUBLE(0)
EXP(s(x)) → EXP(x)
F(b, y, x) → EXP(y)
TOWER(x) → F(a, x, s(0))
F(b, y, x) → F(a, half(x), exp(y))
HALF(s(s(x))) → HALF(x)
HALF(s(0)) → HALF(0)
F(b, y, x) → HALF(x)
F(a, s(x), y) → F(b, y, s(x))
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
DOUBLE(s(x)) → DOUBLE(x)
EXP(s(x)) → DOUBLE(exp(x))
HALF(0) → DOUBLE(0)
EXP(s(x)) → EXP(x)
F(b, y, x) → EXP(y)
TOWER(x) → F(a, x, s(0))
F(b, y, x) → F(a, half(x), exp(y))
HALF(s(s(x))) → HALF(x)
HALF(s(0)) → HALF(0)
F(b, y, x) → HALF(x)
F(a, s(x), y) → F(b, y, s(x))
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
DOUBLE(s(x)) → DOUBLE(x)
EXP(s(x)) → DOUBLE(exp(x))
HALF(0) → DOUBLE(0)
EXP(s(x)) → EXP(x)
F(b, y, x) → EXP(y)
TOWER(x) → F(a, x, s(0))
F(b, y, x) → F(a, half(x), exp(y))
F(a, s(x), y) → F(b, y, s(x))
F(b, y, x) → HALF(x)
HALF(s(0)) → HALF(0)
HALF(s(s(x))) → HALF(x)
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
↳ QDP
DOUBLE(s(x)) → DOUBLE(x)
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DOUBLE(s(x)) → DOUBLE(x)
[DOUBLE1, s1]
s1: [1]
DOUBLE1: [1]
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
HALF(s(s(x))) → HALF(x)
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
HALF(s(s(x))) → HALF(x)
[HALF1, s1]
HALF1: [1]
s1: [1]
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
EXP(s(x)) → EXP(x)
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
EXP(s(x)) → EXP(x)
[EXP1, s1]
EXP1: [1]
s1: [1]
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
F(b, y, x) → F(a, half(x), exp(y))
F(a, s(x), y) → F(b, y, s(x))
tower(x) → f(a, x, s(0))
f(a, 0, y) → y
f(a, s(x), y) → f(b, y, s(x))
f(b, y, x) → f(a, half(x), exp(y))
exp(0) → s(0)
exp(s(x)) → double(exp(x))
double(0) → 0
double(s(x)) → s(s(double(x)))
half(0) → double(0)
half(s(0)) → half(0)
half(s(s(x))) → s(half(x))
tower(x0)
f(a, 0, x0)
f(a, s(x0), x1)
f(b, x0, x1)
exp(0)
exp(s(x0))
double(0)
double(s(x0))
half(0)
half(s(0))
half(s(s(x0)))